package com.tarena.lbs.activity.service;

import com.tarena.lbs.activity.pojo.param.ActivityAddParam;
import com.tarena.lbs.activity.pojo.query.ActivityQuery;
import com.tarena.lbs.activity.pojo.vo.ActivityVO;
import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.business.api.pojo.dto.StoreDTO;
import com.tarena.lbs.user.api.pojo.dto.UserDTO;
import com.tarena.lbs.user.api.pojo.dto.UserGroupDTO;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.util.List;

@Service
public interface ActivityService {
    /**
     * 分页查询活动列表
     */
    PageResult<ActivityVO> pageList(ActivityQuery query) throws BusinessException;
    
    /**
     * 保存活动（新增或更新）
     */
    void saveActivity(ActivityAddParam param) throws BusinessException, ParseException;
    
    /**
     * 根据ID查询活动详情
     */
    ActivityVO getActivityById(Integer id) throws BusinessException;

    Boolean checkActivityVisible(Integer userId, Integer activityId) throws BusinessException;
    
    /**
     * 根据ID删除活动
     */
    void deleteActivity(Integer id) throws BusinessException;
    
    /**
     * 根据用户ID列表获取用户信息
     */
    List<UserDTO> getUsersByIds(String userIds);
    
    /**
     * 获取用户分组信息
     */
    UserGroupDTO getUserGroupById(Integer groupId);

    void updateActivityStatus(Integer id, Integer enableStatus);
}